/**
 * 67. 二进制求和
 * 给你两个二进制字符串，返回它们的和（用二进制表示）。
 * 输入为 非空 字符串且只包含数字 1 和 0。
 * 输入: a = "11", b = "1"
 * 输出: "100"
 * 二进制加法
 * 0+0=0，0+1=1 ，1+0=1，1+1=10
 */
pub fn add_binary(a: String, b: String) -> String {
    let ia = i128::from_str_radix(&a, 2).unwrap();
    let ib = i128::from_str_radix(&b, 2).unwrap();
    format!("{:b}", (ia + ib)).to_string()
}

#[cfg(test)]
mod test {
    use crate::leetcode::add_binary_67::add_binary;

    #[test]
    fn test() {
        let s = String::from("01");
        let d = String::from("11");
        let f = add_binary(s, d);
        assert_eq!("100".to_string(), f);
    }
}
